CRUD (Create, Read, Update, Delete) হলো ডেটাবেজ অপারেশন পরিচালনার একটি মৌলিক পদ্ধতি, যা অধিকাংশ অ্যাপ্লিকেশন ডেভেলপমেন্টে ব্যবহৃত হয়। ASP.NET Core-এ, CRUD অপারেশনগুলি সাধারণত Entity Framework Core (EF Core) ব্যবহার করে করা হয়, যা একটি Object-Relational Mapping (ORM) টুল এবং ডেটাবেজের সাথে কাজ করার জন্য খুবই শক্তিশালী।
CRUD অপারেশনগুলোর মাধ্যমে ব্যবহারকারীদের ইনপুট গ্রহণ, ডেটা প্রদর্শন, ডেটা আপডেট করা এবং ডেটা মুছে ফেলা যায়। ASP.NET Core অ্যাপ্লিকেশনে এই অপারেশনগুলো করতে Entity Framework Core ব্যবহৃত হয়।
Create অপারেশন ডেটাবেজে নতুন রেকর্ড যোগ করার জন্য ব্যবহৃত হয়। ASP.NET Core-এ এটি সাধারণত POST রিকোয়েস্টের মাধ্যমে করা হয়, যেখানে ডেটা ফর্মের মাধ্যমে সার্ভারে পাঠানো হয়।
এখানে একটি Product নামক মডেল তৈরি করা হলো এবং একটি নতুন প্রোডাক্ট ডেটাবেজে অ্যাড করার জন্য Create
মেথড ব্যবহার করা হয়েছে।
Product.cs
মডেলpublic class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
ProductsController.cs
public class ProductsController : Controller
{
private readonly ApplicationDbContext _context;
public ProductsController(ApplicationDbContext context)
{
_context = context;
}
// GET: Products/Create
public IActionResult Create()
{
return View();
}
// POST: Products/Create
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("Id,Name,Price")] Product product)
{
if (ModelState.IsValid)
{
_context.Add(product);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(product);
}
}
এখানে Create
মেথডটি ব্যবহারকারী থেকে ইনপুট নিয়ে সেই ইনপুটকে ডেটাবেজে সেভ করবে।
Read অপারেশন ডেটাবেজ থেকে ডেটা পড়তে ব্যবহৃত হয়। এটি সাধারণত GET রিকোয়েস্টের মাধ্যমে করা হয়, যেখানে ডেটা ডেটাবেজ থেকে অ্যাক্সেস করা হয় এবং ব্যবহারকারীকে দেখানো হয়।
এখানে আমরা Product মডেল থেকে ডেটা পড়ছি এবং অ্যাকশন রিটার্ন করছি যাতে সেই ডেটা ভিউতে প্রদর্শিত হয়।
ProductsController.cs
// GET: Products
public async Task<IActionResult> Index()
{
return View(await _context.Products.ToListAsync());
}
এই মেথডটি সমস্ত Product গুলি ডেটাবেজ থেকে পড়বে এবং ভিউতে প্রদর্শন করবে।
Index.cshtml
(View)@foreach (var product in Model)
{
<div>
<h3>@product.Name</h3>
<p>@product.Price</p>
</div>
}
Update অপারেশন ডেটাবেজে একটি বিদ্যমান রেকর্ড আপডেট করতে ব্যবহৃত হয়। এটি PUT বা PATCH রিকোয়েস্টের মাধ্যমে করা হয় এবং ডেটাবেজে থাকা একটি রেকর্ডের তথ্য পরিবর্তন করে।
এখানে একটি প্রোডাক্ট আপডেট করার উদাহরণ দেওয়া হল।
ProductsController.cs
// GET: Products/Edit/5
public async Task<IActionResult> Edit(int? id)
{
if (id == null)
{
return NotFound();
}
var product = await _context.Products.FindAsync(id);
if (product == null)
{
return NotFound();
}
return View(product);
}
// POST: Products/Edit/5
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(int id, [Bind("Id,Name,Price")] Product product)
{
if (id != product.Id)
{
return NotFound();
}
if (ModelState.IsValid)
{
try
{
_context.Update(product);
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!ProductExists(product.Id))
{
return NotFound();
}
else
{
throw;
}
}
return RedirectToAction(nameof(Index));
}
return View(product);
}
এখানে Edit
মেথডটি নির্দিষ্ট Product-এর তথ্য লোড করে এবং সেই তথ্য আপডেট করার জন্য ডেটাবেজে পাঠায়।
Delete অপারেশন ডেটাবেজ থেকে একটি রেকর্ড মুছে ফেলার জন্য ব্যবহৃত হয়। এটি DELETE রিকোয়েস্টের মাধ্যমে করা হয় এবং ডেটাবেজ থেকে একটি রেকর্ড স্থায়ীভাবে মুছে ফেলে।
এখানে একটি প্রোডাক্ট ডিলিট করার উদাহরণ দেওয়া হলো।
ProductsController.cs
// GET: Products/Delete/5
public async Task<IActionResult> Delete(int? id)
{
if (id == null)
{
return NotFound();
}
var product = await _context.Products
.FirstOrDefaultAsync(m => m.Id == id);
if (product == null)
{
return NotFound();
}
return View(product);
}
// POST: Products/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public async Task<IActionResult> DeleteConfirmed(int id)
{
var product = await _context.Products.FindAsync(id);
_context.Products.Remove(product);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
এখানে DeleteConfirmed মেথডটি প্রোডাক্টটি ডেটাবেজ থেকে মুছে ফেলে।
CRUD অপারেশন (Create, Read, Update, Delete) হলো ডেটাবেজের মূল কার্যকলাপ এবং এটি যেকোনো ডেটা-চালিত অ্যাপ্লিকেশনে ব্যবহৃত হয়। ASP.NET Core-এ Entity Framework Core (EF Core) ব্যবহার করে এই অপারেশনগুলো সহজেই করা যায়। এর মাধ্যমে আপনি নতুন ডেটা তৈরি, ডেটা পড়া, ডেটা আপডেট এবং ডেটা মুছে ফেলার মতো কাজগুলি খুব সহজে করতে পারবেন।
common.read_more